﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Dominio
{
    public class Articulo: ObjetoPersistente
    {

        #region atributos

        private string mCodigo;
        private string mNombre;        
        private string mImagen;
        private string mDescripcion;
        private DateTime mFechaIngreso;
        private bool mHabilitado;
        private int mStock;        
        private IVA mIVA;
        private List<PrecioArticulo> precios;
        private PrecioArticulo precioVentaActual;
        private PrecioArticulo precioVentaAnterior;
        
        #endregion

        #region propiedades

        public string Codigo 
        { 
            get { return mCodigo; }
            set { mCodigo = value;}
        }

        public string Nombre 
        {
            get { return mNombre; }
            set { mNombre = value; }
        }        

        public string Imagen 
        {
            get { return mImagen; }
            set { mImagen = value; }
        }

        public string Descripcion 
        {
            get { return mDescripcion; }
            set { mDescripcion = value; }
        }

        public bool Habilitado 
        {
            get { return mHabilitado; }
            set { mHabilitado = value; }
        }

        public DateTime FechaIngreso 
        {
            get { return mFechaIngreso; }
            set { mFechaIngreso = value; }
        }

        public int Stock 
        {
            get { return mStock; }
            set { mStock = value; }
        }

        public IVA IVA 
        {
            get { return mIVA; }
            set { mIVA = value; }
        }

        public List<PrecioArticulo> Precios 
        {
            get { return precios; }
            set { precios = value; }
        }

        public PrecioArticulo PrecioVentaActual 
        {
            get { return precioVentaActual; }
            set 
            {
                precioVentaAnterior = precioVentaActual;
                precioVentaActual = value;
            }
        }

        public PrecioArticulo PrecioVentaAnterior 
        {
            get { return precioVentaAnterior; }
            set { precioVentaAnterior = value; }
        }

        #endregion

        #region constructor

        public Articulo()
        {
            Codigo = "";
            Nombre = "";            
            Descripcion = "";
            Habilitado = true;
            FechaIngreso = DateTime.Today;
            Stock = 0;            
            IVA = new IVA();
            Precios = new List<PrecioArticulo>();
            precioVentaActual = new PrecioArticulo();
            precioVentaAnterior = new PrecioArticulo();
        }

        #endregion

        #region metodos

        public override string ToString()
        {
            return Nombre;
        }
        
        #endregion

    }
}
